Software testing is an investigation into the quality of a particular application, module, or other software component, and is meant to provide an objective and independent view of the tested software to allow developers and other interested parties information on any issues, errors, or risks associated with execution of the tested software. Testing can be used prior to software launches to remove the number of issues that may arise in a deployment-type situation. In some instances, testing can validate and verify that a software component: (1) meets its design requirement and description; (2) works as expected; (3) can be implemented as defined; and (4) satisfies user needs and potential execution environments.